package com.taijihuabao.modules.service;

import com.github.pagehelper.PageInfo;
import com.taijihuabao.modules.entity.PermissionEntity;
import com.taijihuabao.modules.model.permission.dto.PermissionCrFromDTO;
import com.taijihuabao.modules.model.permission.dto.PermissionListFromDTO;
import com.taijihuabao.modules.model.permission.dto.PermissionUpFromDTO;
import com.taijihuabao.modules.model.permission.vo.PermissionInfoVO;

import java.util.List;

/**
 * 权限管理
 *
 * @author Wang
 */
public interface PermissionService {

    /**
     * 权限列表
     *
     * @param listFromDTO
     * @return
     */
    PageInfo selectAllPermissions(PermissionListFromDTO listFromDTO);

    /**
     * 获取所有权限
     *
     * @return
     */
    List<PermissionEntity> selectAll();

    /**
     * 信息
     *
     * @param id
     * @return
     */
    PermissionInfoVO selectById(Long id);

    /**
     * 新增权限
     *
     * @param crFromDTO
     */
    void insertPermission(PermissionCrFromDTO crFromDTO);

    /**
     * 修改权限
     *
     * @param upFromDTO
     */
    void updatePermission(PermissionUpFromDTO upFromDTO);

    /**
     * 恢复已删除的权限
     *
     * @param id
     */
    void updateDelPermission(Long id);

    /**
     * 逻辑删除权限
     *
     * @param id
     */
    void deletePermission(Long id);

}
